package top.szhome.framework.core.tools.support;

import java.util.List;

/**
 * @author 唐加利
 * @date 2023/5/19
 **/
public interface BaseConverter<DTO, ENTITY, VO> {

    /**
     * 将请求数据转化为实体数据
     * @param dto 数据传输对象
     * @return 返回实体数据
     */
    ENTITY from(DTO dto);

    /**
     * 将请求数据转化为实体数据
     * @param dtoList 数据传输对象
     * @return 返回实体数据
     */
    List<ENTITY> from(List<DTO> dtoList);

    /**
     * 将实体数据转化为响应数据
     * @param entity 实体数据
     * @return 响应数据
     */
    VO to(ENTITY entity);

    /**
     * 将实体数据转化为响应数据
     * @param entities 实体数据列表
     * @return 响应数据列表
     */
    List<VO> to(List<ENTITY> entities);

}
